﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entidades;
using MySql.Data.MySqlClient;

namespace Datos
{
    public class MySqlUbicacionDAO: IUbicacion
    {
        string s;
        MySqlConnection conector = new MySqlConnection();
        string connectionString;

        public void iniciarConexion()
        {
            try
            {
                connectionString = "Server=127.0.0.1;Database=justime;Uid=root; pwd=root;";
                conector.ConnectionString = connectionString;
                conector.Open();
                s = "La conexion se ha realizado con exito";

            }
            catch
            {
                s = "Ocurrio un error al intentar conectarse";
            }

        }

        public void Conectar()
        {
            iniciarConexion();
        }

        public void Desconectar()
        {
            conector.Close();
        }

        public List<Entidades.Ubicacion> getTodos()
        {
            
            List<Ubicacion> lst = new List<Ubicacion>();
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "Select * From ubicacion";
            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Ubicacion c = new Ubicacion();
                c.Latitud= Double.Parse( reader["latitud"].ToString());
                c.Longitud =Double.Parse( reader["longitud"].ToString());
                c.Email = reader["email"].ToString();
                lst.Add(c);
            }
            return lst;
        }

        public string getMail(Ubicacion u)
        {
            string c=null;
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "SELECT email FROM ubicacion where (latitud=?lat and longitud=?lng)";
            cmd.Parameters.AddWithValue("?lat", u.Latitud);
            cmd.Parameters.AddWithValue("?lng", u.Longitud);
            MySqlDataReader reader = cmd.ExecuteReader();
            if (reader.Read()) { 
            c = reader["email"].ToString();
            }
            return c;
        }

        public Ubicacion getUbicacion(string email)
        {
            Ubicacion u=new Ubicacion();
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "Select * From ubicacion where email=?email";
            cmd.Parameters.AddWithValue("?email", email);
            MySqlDataReader reader = cmd.ExecuteReader();
            if (reader.Read()) {
                u.Latitud = Double.Parse(reader["latitud"].ToString());
                u.Longitud = Double.Parse(reader["longitud"].ToString());
                u.Email = email;
            }
            return u;
        }


        public void Insertar(Ubicacion ubicacion)
        {
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "insert into ubicacion values(?latitud,?longitud,?email);"; //no sta completa
            cmd.Parameters.AddWithValue("?latitud", ubicacion.Latitud);
            cmd.Parameters.AddWithValue("?longitud", ubicacion.Longitud);
            cmd.Parameters.AddWithValue("?email", ubicacion.Email);
            s = cmd.CommandText;
            cmd.ExecuteNonQuery();         
 
        }

        public void Actualizar(Ubicacion ubicacion)
        {
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "UPDATE Ubicacion SET latitud=?latitud,longitud=?longitud  WHERE email=?email;";
            cmd.Parameters.AddWithValue("?latitud", ubicacion.Latitud);
            cmd.Parameters.AddWithValue("?longitud", ubicacion.Longitud);
            cmd.Parameters.AddWithValue("?email", ubicacion.Email);
            cmd.ExecuteNonQuery();
        }


        public string getMail(string email)
        {
            string c = null;
            MySqlCommand cmd = conector.CreateCommand();
            cmd.CommandText = "SELECT email FROM ubicacion where email=?email";
            cmd.Parameters.AddWithValue("?email", email);
            MySqlDataReader reader = cmd.ExecuteReader();
            if (reader.Read())
            {
                c = reader["email"].ToString();
            }
            return c;
        }
    }
}
